/**
 *Project: jh-framework
 *File: cn.xkshow.io.file.FileManager.java 
 *Author: hardy(admin@xkshow.cn) Copyright
 ****************************************************************
 *   VERSION       DATE            BY       CHANGE/COMMENT
 * --------------------------------------------------------------
 *    1.0        2013-6-26         hardy         create
 ****************************************************************
 *note: 文件管理：上传/删除等
 ***************************************************************/ 
package cn.xkshow.io.file;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;

public class FileManager {
	/**
	 * 读取文件内容：
	 * @param filePath 文件地址
	 * @return 内容的集合
	 * 一行一行的读取文本内容 如果文件找不到时，返回 null；否则，返回文件内容的集合。
	 * 注意:空行不会读取到集合中
	 * */
	public static List<String> readTextFileContent(String filePath){
		List<String> result = null;
		FileReader reader = null;
		try {
			reader = new FileReader(filePath);
		} catch (FileNotFoundException e) {
			return result;
		}
		result = new ArrayList<String>();
		BufferedReader br = new BufferedReader(reader);
		String line = null;
		try {
			while((line = br.readLine()) != null) {
				if(StringUtils.isNotBlank(line)){
					result.add(line);
				}
			}
			return result;
		} catch(IOException e){
			return result;
		} finally {
			if(null != br) {
				try {
					br.close();
					br = null;
				} catch (IOException e) {
				}
			}
			if(null != reader){
				try {
					reader.close();
					reader = null;
				} catch (IOException e) {
				}
			}
		}
	}
	
	/**
	 * Physically remove the file
	 * @param filePath
	 * @return 
	 */
	public static boolean removeFile(String filePath){
		return removeFile(new java.io.File(filePath));
	}

	public static boolean removeFile(java.io.File file){
		if(!file.exists()){
			throw new RuntimeException("File does not exist!");
		}
		if(file.isDirectory()){
			throw new RuntimeException("Not a file!");
		}
		return file.delete();
	}
}
